package com.wgchao.amc.service;

import com.wgchao.amc.autho.AuthoInfoCenter;
import com.wgchao.amc.common.PageData;
import com.wgchao.amc.common.ResultCommon;
import com.wgchao.amc.mapstruct.dto.SysBaseAgencyDTO;
import com.wgchao.amc.mapstruct.dto.SysBaseGroupDTO;
import com.wgchao.amc.mapstruct.dto.SysBaseRoleDTO;
import java.util.List;

/**
 * @作者：wgchao
 * @时间：19:14 2019/10/19 0019
 * @用途：
 **/
public interface GroupService {
    public ResultCommon<SysBaseGroupDTO> save(SysBaseGroupDTO groupDTO, AuthoInfoCenter authoInfoCenter) throws Exception;

    public ResultCommon<SysBaseGroupDTO> search(Long groupId) throws Exception;

    public ResultCommon<List<SysBaseGroupDTO>> search(String agencyCode) throws Exception;

    public ResultCommon<PageData<SysBaseGroupDTO>> page(int page, int limit, String agencyCode, Long groupId,
                                                         String groupName, boolean child) throws Exception;

    public ResultCommon<SysBaseAgencyDTO> update(SysBaseGroupDTO groupDTO, AuthoInfoCenter authoInfoCenter) throws Exception;

    public ResultCommon deletes(List<Long> groupIds, AuthoInfoCenter authoInfoCenter) throws Exception;

    public ResultCommon<List<SysBaseGroupDTO>> searchChilds(Long groupId) throws Exception;

    public ResultCommon<SysBaseGroupDTO> searchChildsTree(Long groupId) throws Exception;

    public ResultCommon<SysBaseGroupDTO> assignedRoles(Long groupId, List<SysBaseRoleDTO> roleDTOs) throws Exception;
}
